/**
 * 
 * @author Benjamin Zwanzger
 * @version v1.0
 * @date 27.03.2013
 * 
 */

public class CaesarCoder {

	private static final int Alphabet = 26;
	private int key;
	private String text;

	public void setKey(int i) {
		key = i;
	}

	public String getText() {
		return text;
	}

	public void encode(String text) {

		char[] elemente = text.toCharArray();
		System.out.print("Klartext:	");
		System.out.println(elemente);

		for (int i = 0; i <= elemente.length - 1; i++) {

			if (elemente[i] >= 'A' && elemente[i] <= 'Z') {
				elemente[i] = (char) ((elemente[i] - 'A' + key) % 26 + 'A');

			}

			else if (elemente[i] >= 'a' && elemente[i] <= 'z')
				elemente[i] = (char) ((elemente[i] - 'a' + key) % 26 + 'a');

		}
		System.out.print("encoded:	");
		System.out.println(elemente);
	}

	public void decode(String text) {
		char[] elemente = text.toCharArray();
		System.out.print("Ciphertext:	");
		System.out.println(elemente);
		for (int i = 0; i <= elemente.length - 1; i++) {
			if (elemente[i] >= 'A' && elemente[i] <= 'Z') {
				elemente[i] = (char) ((elemente[i] + 'A' - key) % Alphabet + 'A');
			}

			else if (elemente[i] >= 'a' && elemente[i] <= 'z') {
				elemente[i] = (char) ((elemente[i] - 'a' + (26 - key)) % 26 + 'a');

			}
		}
		System.out.print("decoded:	");
		System.out.println(elemente);
	}

}
